package com.example.analysis.mapper;

import com.example.analysis.dto.ClusterScoreDto;
import com.example.analysis.domain.StudentInfo;
import com.example.analysis.dto.CourseScoreDto;
import com.example.analysis.dto.StudentPlatformScoreDto;
import com.example.analysis.entity.Student;

import java.util.List;

import com.example.analysis.vo.ClusterScoreVo;
import com.example.analysis.vo.TimeScoreVo;
import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface StudentDao {

    int deleteByPrimaryKey(String studentId);

    int insert(Student record);

    int insertSelective(Student record);

    Student selectByPrimaryKey(String studentId);

    int updateByPrimaryKeySelective(Student record);

    int updateByPrimaryKey(Student record);

    List<ClusterScoreVo> getScoreSet (@Param("classId") String classId, @Param("subId") String subId);

    List<TimeScoreVo> getTimeScoreSet (@Param("classId") String classId, @Param("subId") String subId);
    List<StudentInfo> getAll();

    List<ClusterScoreDto> getStudentEvaScore(@Param("subId") String subId);

    List<ClusterScoreDto> getStudentSupScore(@Param("subId") String subId);

    Double getStudentScore(@Param("subId") String subId, @Param("teacherId") String teacherId);

    Double getStudentEvaScoreOnly(@Param("subId") String subId, @Param("teacherId") String teacherId);

    List<StudentPlatformScoreDto> getAllStudentsOfOneClass(@Param("classId") String classId);

    List<CourseScoreDto> getCourseScoreData(@Param("studentId") String studentId);
}
